package cn.edu.scau.cmi.wangmaoren.composite.consistent;

import java.util.HashSet;
import java.util.Set;

public abstract class ConsistentComponent
{
	// (1)父节点。
	ConsistentComponent parent = null;

	// (2)子节点作为其组成部分。
	Set<ConsistentComponent> children = new HashSet<ConsistentComponent>();

	// (3)业务功能
	abstract String doSomething();

	// (4)对包含对象的功能
	abstract ConsistentComponent getParent();

	// (5)对构成部分管理的功能，这些和安全性组合模式不同
	public abstract ConsistentComponent addChild(ConsistentComponent child);

	abstract ConsistentComponent deleteChild(ConsistentComponent child);

	public abstract Set<ConsistentComponent> getChildren();
}
